//定义详情模块数据的 TS 类型
export interface ResponseData {
    code: number,
    message: string,
    ok: boolean
}

//代表医院详情的数据
export interface HosPitalDetailData {
    "bookingRule": {
        "cycle": number,
        "releaseTime": string,
        "stopTime": string,
        "quitDay": number,
        "quitTime": string,
        "rule": string[]
    },
    "hospital": {
        "id": string,
        "createTime": string,
        "updateTime": string,
        "isDeleted": number,
        "param": {
            "hostypeString": string,
            "fullAddress": string
        },
        "hoscode": string,
        "hosname": string,
        "hostype": string,
        "provinceCode": string,
        "cityCode": string,
        "districtCode": string,
        "address": string,
        "logoData": string,
        "intro": string,
        "route": string,
        "status": number,
        "bookingRule": string
    }
}

//医院详情接口返回数据 TS
export interface HosPitalDetail extends ResponseData {
    data: HosPitalDetailData
}

//代表医院科室的数据
export interface Deparment {
    "depcode": string,
    "depname": string,
    "children"?: Deparment[]
}

//代表存储科室数据类型
export type DeparmentArr = Deparment[];
//获取科室接口返回的数据类型
export interface DeparmentResponseData extends ResponseData {
    data: DeparmentArr
}

//用户登录接口需要携带的参数
export interface LoginData {
    phone: string,
    code: string
}
//登录接口返回的用户信息数据的类型
export interface UserInfo {
    name: string,
    token: string
}
//登录接口返回数据的 TS 类型
export interface UserLoginResponseData extends ResponseData {
    data: UserInfo
}

//定义微信扫描登录返回数据的 TS 类型
export interface WXLogin {
    "redirectUri": string,
    "appid": string,
    "scope": string,
    "state": string
}

export interface WXLoginResponseData extends ResponseData {
    data: WXLogin
}


export interface BaseMap {
    "workDateString": string,
    "releaseTime": string,
    "bigname": string,
    "stopTime": string,
    "depname": string,
    "hosname": string
}

export interface WorkData {
    "workDate": string,
    "workDateMd": string,
    "dayOfWeek": string,
    "docCount": number,
    "reservedNumber": number,
    "availableNumber": number,
    "status": number
}

export type BookingScheduleList = WorkData[]

//某一个医院某一个科室预约挂号的数据
export interface HospitalWorkData extends ResponseData {
    data: {
        total: number,
        bookingScheduleList: BookingScheduleList,
        baseMap: BaseMap
    }
}

//代表的是一个医生的数据
export interface Doctor {
    "id": string,
    "createTime": string,
    "updateTime": string,
    "isDeleted": number,
    "param": {
        "dayOfWeek": string,
        "depname": string,
        "hosname": string
    },
    "hoscode": string,
    "depcode": string,
    "title": string,
    "docname": string,
    "skill": string,
    "workDate": string,
    "workTime": number,
    "reservedNumber": number,
    "availableNumber": number,
    "amount": number,
    "status": number,
    "hosScheduleId": string
}

//数组包含全部医生
export type DocArr = Doctor[]
//获取医生排班接口返回的数据
export interface DoctorResponseData extends ResponseData {
    data: DocArr
}

//代表的是一个就诊人数据的 TS 类型
export interface User {
    id: number,
    createTime: string,
    updateTime: string,
    isDeleted: number,
    param: {
        certificatesTypeString: string,
        contactsCertificatesTypeString: string,
        cityString: string,
        fullAddress: string,
        districtString: string,
        provinceString: string
    },
    userId: number,
    name: string,
    certificatesType: string,
    certificatesNo: string,
    sex: number,
    birthdate: string,
    phone: string,
    isMarry: number,
    provinceCode: string,
    cityCode: string,
    districtCode: string,
    address: string,
    contactsName: string,
    contactsCertificatesType: number,
    contactsCertificatesNo: string,
    contactsPhone: string,
    isInsure: number,
    cardNo: string,
    status: number
}
export type UserArr = User[];
export interface UserResponseData extends ResponseData {
    data: UserArr
}

//获取某一个挂号医生数据的详情
export interface DoctorInfoData extends ResponseData {
    data: Doctor
}

